#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

const int N = 1e5 + 10;

typedef pair<int, int> PII;

vector<PII> A; // 区间存放

void merge(vector<PII> &A)
{
    vector<PII> B;

    sort(A.begin(), A.end(), [](const PII &a, const PII &b) { return a.first < b.first; });

    int i = -2e9, j = -2e9;
    for (auto item : A)
    {
        if (item.first > j)
        {
            if (i != -2e9)
                B.push_back({i, j});
            i = item.first, j = item.second;
        }
        else
            j = max(j, item.second);
    }
    if (i != -2e9) // 放最后一个合并好的区间
        B.push_back({i, j});
    A = B;
}

int main(void)
{
    int n, l, r;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        scanf("%d%d", &l, &r);
        A.push_back({l, r});
    }

    merge(A);

    cout << A.size();
}